package com.cyt.work.wb.service;
import com.cyt.base.model.dto.ReturnResult;

import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.work.wb.model.po.WxWbBulid;
import com.cyt.work.wb.model.vo.WxWbBulidVo;

import java.util.List;

/**
 * 维保模块-建筑物表Service层接口类
 *
 * @author ding xu
 * @date 2019-11-25 8:51:23
 */
public interface WxWbBulidService extends BaseService<WxWbBulid> {

    /**
     * 分页查询
     *
     * @param wxWbBulidVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    ReturnResult findPage(WxWbBulidVo wxWbBulidVo, int pageNum, int pageSize);

    /**
     * 分页查询
     *
     * @param wxWbBulidVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    ReturnResult findVoPage(WxWbBulidVo wxWbBulidVo, int pageNum, int pageSize);

    /**
     * list查询
     *
     * @param wxWbBulidVo 接受参数对象
     * @return List<WxWbBulid>
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    List<WxWbBulid> findList(WxWbBulidVo wxWbBulidVo);

    /**
     * list查询
     *
     * @param wxWbBulidVo 接受参数对象
     * @return List<WxWbBulid>
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    List<WxWbBulid> findListTree(WxWbBulidVo wxWbBulidVo);

    /**
     * list查询
     *
     * @param wxWbBulidVo 接受参数对象
     * @return List<WxWbBulid>
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    List<WxWbBulid> findListTreeRoom(WxWbBulidVo wxWbBulidVo);

    /**
     * list查询
     *
     * @param wxWbBulidVo 接受参数对象
     * @return List<WxWbBulidVo>
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    List<WxWbBulidVo> findVoList(WxWbBulidVo wxWbBulidVo);

    /**
     * 单个对象查询
     *
     * @param wxWbBulidVo 接受参数对象
     * @return WxWbBulid
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    WxWbBulid findOne(WxWbBulidVo wxWbBulidVo);

    /**
     * 单个对象查询
     *
     * @param wxWbBulidVo 接受参数对象
     * @return WxWbBulidVo
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    WxWbBulidVo findVoOne(WxWbBulidVo wxWbBulidVo);

    /**
     * 添加或更新
     *
     * @param wxWbBulidVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    ReturnResult addOrUpdate(WxWbBulidVo wxWbBulidVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param wxWbBulidVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    ReturnResult remove(WxWbBulidVo wxWbBulidVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param wxWbBulidVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    ReturnResult delete(WxWbBulidVo wxWbBulidVo, SysUser sysUser);


    /**
     * 获取菜单树
     *
     * @param wxWbBulidVo 参数接受对象
     * @return ReturnResult
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    ReturnResult dTreeList(WxWbBulidVo wxWbBulidVo);

    /**
     * 获取菜单树
     *
     * @param wxWbBulidVo 参数接受对象
     * @return ReturnResult
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    ReturnResult dTreeListRoom(WxWbBulidVo wxWbBulidVo);

    /**
     * 获取菜单树(建筑+房间)
     *
     * @param wxWbBulidVo 参数接受对象
     * @return ReturnResult
     * @author ding xu
     * @date 2019-11-25 8:51:23
     */
    ReturnResult dTreeListBulidAndRoom(WxWbBulidVo wxWbBulidVo);
}